//package com.example.demolearn.Interceptor;
//
//import com.example.demolearn.aspect.HttpLog;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
//
//public class BaseInterceptor extends HandlerInterceptorAdapter {
//
//    /**
//     * 获取 ApiAccessLogIdentity注解的value
//     *
//     * @param clazz
//     * @param apiAccessLogIdentityClass
//     * @return
//     */
//    public String getValueByClazzApiAccessLogIdentity(Class<?> clazz, Class<HttpLog> apiAccessLogIdentityClass) {
//
//        String resourceCode = null;
//        if (clazz.isAnnotationPresent(apiAccessLogIdentityClass)) {
//            HttpLog apiAccessLogIdentity = clazz.getAnnotation(HttpLog.class);
//            resourceCode = apiAccessLogIdentity.value();
//            if ("".equals(resourceCode) && resourceCode != null) {
//                resourceCode = getValueByClazzRequestMapping(clazz, RequestMapping.class);
//            }
//        }
//        return resourceCode;
//    }
//
//    /**
//     * 获取 ApiAuthentication注解的value
//     *
//     * @param clazz
//     * @param apiAuthenticationClass
//     * @return
//     */
//    public String getValueByClazzApiApiAuthentication(Class<?> clazz, Class<HttpLog> apiAuthenticationClass) {
//
//        String resourceCode = null;
//        //判断类上是否标有ApiAuthentication注解
//        if (clazz.isAnnotationPresent(apiAuthenticationClass)) {
//            HttpLog apiAccessLogIdentity = clazz.getAnnotation(apiAuthenticationClass);
//            resourceCode = apiAccessLogIdentity.value();
//            if ("".equals(resourceCode) && resourceCode != null) {
//                resourceCode = getValueByClazzRequestMapping(clazz, RequestMapping.class);
//            }
//        }
//        return resourceCode;
//    }
//
//
//    /**
//     * 获取类上RequestMapping的注解的value,转换成大写
//     *
//     * @param clazz
//     * @param requestMappingClass
//     * @return
//     * @RequestMapping(value = "/api/resource")//API_RESOURCE
//     */
//    public String getValueByClazzRequestMapping(Class<?> clazz, Class<RequestMapping> requestMappingClass) {
//        if (clazz.isAnnotationPresent(requestMappingClass)) {
//            RequestMapping requestMapping = clazz.getAnnotation(RequestMapping.class);
//            String[] value = requestMapping.value();
//            if (value == null || value.length == 0) {
//                return null;
//            }
//            // api/resource
//            if (value[0].startsWith("/")) {
//                value[0] = value[0].replaceFirst("/", "");
//            }
//            // api_resource
//            value[0] = value[0].replaceAll("/", "_");
//            // API_RESOURCE 根据驼峰命名把RequestMapping的注解的value用底杠隔开，换成大写
//            return  value[0];
//        }
//        return null;
//    }
//}
